#include <CMS8S6990.H>
#include "main.h"

/**
  * @brief  Flash写半字函数
  * @param  Addr写入的地址 0x00~0x3FFF;
  * @param  Data，要写入的数据
  * @retval 无
  */
void FLASH_WriteHalfWord(uint16_t Addr, int16_t Data)
{
	FLASH_UnLock();
	FLASH_Erase(FLASH_DATA,Addr);
	FLASH_Write(FLASH_DATA,Addr, Data);
	FLASH_Write(FLASH_DATA,Addr+1, Data>>8);
	FLASH_Lock();
//	delay_ms(5);
}
/**
  * @brief  Flash读半字函数
  * @param  Addr，要读取的地址
  * @retval 读取的半字
  */
int16_t FLASH_ReadHalfWord(uint16_t Addr)
{
	int16_t temp=0;
	FLASH_UnLock();
	temp = FLASH_Read(FLASH_DATA,Addr+1) << 8 | FLASH_Read(FLASH_DATA,Addr);		
	FLASH_Lock();
	return temp;
}
/**
  * @brief  Flash写数组函数，默认写入一页（1k）
  * @param  Addr写入的地址 0x00~0x3FFF;
  * @param  Data，要写入的数据（数组）
  * @retval 无
  */
void FLASH_WritePage(uint16_t Addr, int16_t* Data)
{
	uint16_t i = 0;
	FLASH_UnLock();
	FLASH_Erase(FLASH_DATA,Addr);
	for(i = 0; i < MAIN_TABLE_MAX * 2; i += 2)
	{
		FLASH_Write(FLASH_DATA, Addr + i, Data[i/2]);
		FLASH_Write(FLASH_DATA, Addr + i+1, Data[i/2] >> 8);
	}
	FLASH_Lock();
}



